﻿using Kyoh.Lib.Office;

namespace Kyoh.Lib.Excel
{
    /// <summary>ヘッダーとフッターの画像オブジェクトに適用されるプロパティを含みます。</summary>
    public class Graphic : Component
    {
        private Graphic(object obj, Component parent)
			: base(obj, parent) { }

        /// <summary>Excel COM オブジェクトで、新しいインスタンスを初期化します。</summary>
        /// <param name="obj">Excel COM オブジェクト</param>
        /// <param name="parent">親となる <see cref="Component"/> オブジェクト。</param>
        internal static Graphic Create(object obj, Component parent)
        {
            return obj == null ? null : new Graphic(obj, parent);
        }

        /// <summary>輝度を取得・設定します。</summary>
        public float Brightness
        {
            get { return (float)base.GetProperty("Brightness"); }
            set { base.SetProperty("Brightness", value); }
        }

        /// <summary>コントラストを取得・設定します。</summary>
        public float Contrast
        {
            get { return (float)base.GetProperty("Contrast"); }
            set { base.SetProperty("Contrast", value); }
        }

        /// <summary>下トリミング幅を取得・設定します。</summary>
        public float CropBottom
        {
            get { return (float)base.GetProperty("CropBottom"); }
            set { base.SetProperty("CropBottom", value); }
        }

        /// <summary>左トリミング幅を取得・設定します。</summary>
        public float CropLeft
        {
            get { return (float)base.GetProperty("CropLeft"); }
            set { base.SetProperty("CropLeft", value); }
        }

        /// <summary>右トリミング幅を取得・設定します。</summary>
        public float CropRight
        {
            get { return (float)base.GetProperty("CropRight"); }
            set { base.SetProperty("CropRight", value); }
        }

        /// <summary>上トリミング幅を取得・設定します。</summary>
        public float CropTop
        {
            get { return (float)base.GetProperty("CropTop"); }
            set { base.SetProperty("CropTop", value); }
        }

        /// <summary>ファイル名を取得・設定します。</summary>
        public string Filename
        {
            get { return (string)base.GetProperty("Filename"); }
            set { base.SetProperty("Filename", value); }
        }

        /// <summary>高さを取得・設定します。</summary>
        public float Height
        {
            get { return (float)base.GetProperty("Height"); }
            set { base.SetProperty("Height", value); }
        }

        /// <summary>幅を取得・設定します。</summary>
        public float Width
        {
            get { return (float)base.GetProperty("Width"); }
            set { base.SetProperty("Width", value); }
        }

        /// <summary>表示色を取得・設定します。</summary>
        public ColorType ColorType
        {
            get { return (ColorType)(int)base.GetProperty("ColorType"); }
            set { base.SetProperty("ColorType", (int)value); }
        }

        /// <summary>アスペクト比をロックするかどうかを取得・設定します。</summary>
        public TriState LockAspectRatio
        {
            get { return (TriState)(int)base.GetProperty("LockAspectRatio"); }
            set { base.SetProperty("LockAspectRatio", (int)value); }
        }
    }
}
